Refinement calculus for a simple certification of static polyhedral analysis with code transformations
نویسندگان
چکیده
A static analyzer such as ASTRÉE [CCF05, BCC10] is able to ensure safety of critical software, i.e. the absence of runtime overflows. But ASTRÉE is itself a very complex software and its full formal verification seems currently impossible. A more feasible alternative might be to make the analyzer produce a formally verifiable certificate. Such a certificate would summarize the proof of safety found by the analyzer. As a preliminary step to address this challenge, we experiment in COQ with the design of a tiny language of certificates, called “SCAT”1. We believe that instrumented analyzers could produce SCAT certificates when analysis is successful. Roughly, a SCAT certificate annotates the source with loop invariants that are hard to re-infer and also with code transformations used during the analysis. These code transformations come typically from trace-partitioning (loop unrolling, etc) [MR05] and linearization of arithmetic expressions [Min06]. Hence, this paper presents the SCAT language and an automatic checker of SCAT certificates which is formally verified in COQ [The12]. Our main COQ theorem ensures that if the SCAT certificate is accepted by the checker then the original source is safe.
منابع مشابه
Towards Formal Certification of Software Components
Software certification as it is practised today guarantees that certain standards are kept in the process of software development. However, this does not make any statements about the actual quality of implemented code. We propose an approach to certify the non-functional properties of componentbased software which is based on a formal refinement calculus, using the performance abstractions of ...
متن کاملOn Formal Certification of AD Transformations
Automatic Differentiation (AD) is concerned with the semantics augmentation of an input program representing a function to form a transformed program that computes the function’s derivatives. To ensure the correctness of the AD transformed code, particularly for safety critical applications, we propose using the proof-carrying code paradigm: an AD tool must provide a machine checkable certifica...
متن کاملLoop Transformations for the Optimized Generation of Reconfigurable Hardware
Current high-level design environments offer little support to implement data-intensive applications on heterogeneous-memory systems; they rather focus on parallelism. This thesis addresses the memory hierarchy problem to high-level transformations of loop structures and the integration of these transformations in the hardware design flow. This work focuses on three aspects: (1) the composition...
متن کاملPhased Computation Graphs in the Polyhedral Model
We present a translation scheme that allows a broad class of dataflow graphs to be considered under the optimization framework of the polyhedral model. The input to our analysis is a Phased Computation Graph, which we define as a generalization of the most widely used dataflow representations, including synchronous dataflow, cyclo-static dataflow, and computation graphs. The output of our analy...
متن کاملResult certification for relational program analysis
We define a generic relational program analysis for an imperative, stack-oriented byte code language with procedures, arrays and global variables and instantiate it with an abstract domain of polyhedra. The analysis has automatic inference of loop invariants and method pre-/post-conditions, and efficient checking of analysis results by a simple checker. Invariants, which can be large, can be sp...
متن کامل